草庐IT

Java final 与 C++ const

全部标签

C++ std::string 和 NULL const char*

我正在使用C++编写两段大代码,一段以“C风格”完成,另一段以“C++风格”完成。C类型代码具有返回constchar*的函数,而C++代码在很多地方都有类似constchar*somecstylefunction();...std::stringimacppstring=somecstylefunction();它从C样式代码返回的constchar*构造字符串。这一直有效,直到C风格代码发生变化并开始有时返回NULL指针。这当然会导致段错误。周围有很多代码,所以我想以最简洁的方式解决这个问题。在这种情况下,预期的行为是imacppstring将是空字符串。是否有一个很好的、巧妙的解

C++ : Why cant static functions be declared as const or volatile or const volatile

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:C++-Whystaticmemberfunctioncan’tbecreatedwith‘const’qualifier想知道为什么静态成员函数不能声明为const或volatile或constvolatile的原因?#includeclassTest{staticvoidfun()const{//compilererrorreturn;}};

c++ - 错误 `QObject` 子类和复制构造函数 : `QObject::QObject(const QObject&) is private`

以下是我遇到的编译错误:/usr/lib/qt-3.3/include/qobject.h:IncopyconstructorProduct::Product(constProduct&):/usr/lib/qt-3.3/include/qobject.h:211:error:QObject::QObject(constQObject&)isprivateProduct.h:20:error:withinthiscontextHandleTCPClient.cpp:InmemberfunctionintHandler::HandleTCPClient(int,std::string,s

c++ - 在构造函数之后初始化 C++ const 字段

我想创建一个不可变的数据结构,比如说,它可以从文件中初始化。classImage{public:constintwidth,height;Image(constchar*filename){MetaDatamd((readDataFromFile(filename)));width=md.width();//Error!widthisconstheight=md.height();//Error!heightisconst}};我可以做些什么来解决这个问题classImage{MetaDatamd;public:constintwidth,height;Image(constchar*

c++ - const - 它不应该改变吗

在运行此C++代码时,我希望输出为Abc,但结果为FFF,这是为什么呢?name不是指向常量char吗?#includeintmain(){constchar*name="Abc";name="FFF";std::cout 最佳答案 是的,正如您所说,它指向一个constchar,但它不是一个常量指针。您正在更改您所指向的内容,而不是您所指向内容的内容。换句话说,在您重新分配指针后,保存“Abc”的内存仍然保存字符“Abc”。对于常量指针,您需要constchar*constname="Abc";。在这种情况下,它不会编译,因为您无

c++ - 为什么 std::unique_ptr 不隐式转换为 T* 和 const T*?

如果我自己写,我想我会这样做:template>classUptr:privateDtor{T*vl_;public:explicitUptr(T*vl=nullptr)noexcept:vl_(vl){}~Uptr()noexcept{Dtor::operator()(vl_);}Uptr&swap(Uptr&o)noexcept{T*tmp;tmp=vl_;vl_=o.vl_;o.vl_=tmp;}Uptr&operator=(Uptr&&o)noexcept{o.swap(*this);}Uptr&operator=(nullptr_t)noexcept{vl_=nullptr;

c++ - 我可以在 C++ 类中将成员变量声明为 const 吗?如果可以,如何声明?

我可以在c++的类中将成员变量声明为const吗?如果可以,如何声明? 最佳答案 您可以-将const放在类型名称的前面。classC{constintx;public:C():x(5){}}; 关于c++-我可以在C++类中将成员变量声明为const吗?如果可以,如何声明?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1114501/

c++ - 静态 const 成员的 const_cast

以下代码在GCC(4.2-4.6)和Clang(2.1)下都能很好地编译,但是当我运行可执行文件时,它会显示“总线错误:10”。我不明白原因。#includestructA{staticintconstv;A(){++*const_cast(&A::v);}};intconstA::v=0;intmain(intargc,char*argv[]){Aa,b,c;std::cout 最佳答案 我认为相关的引用是:§7.1.6.1(4)fromN3242:Exceptthatanyclassmemberdeclaredmutableca

c++ - 从 "const char*"到 "char"错误的无效转换

这个问题在这里已经有了答案:invalidconversionfrom‘constchar*’to‘char’(2个答案)关闭5年前。我想发布这个是因为我不太确定我在使用简单的赋值语句时遇到了什么问题。我正在做一个家庭作业,要求我在一个简单的程序中编写结构和函数来绘制ASCII字符的形状。现在我只是想测试我编写的函数,我正在尝试为Circle结构的符号元素赋值,只是为了测试我编写的DrawShape函数。当我尝试为其分配一个*字符时,我收到一条错误消息,指出“错误:从‘constchar*’到‘char’的无效转换”。我会把整个代码放进去,虽然它很长而且还没有完成。对此有任何帮助,我们

c++ - const char* 初始化

这是我在一个开源软件中找到的一种用法,我不太明白它是如何工作的。当我将它输出到标准输出时,它是“版本0.8.0”。constcharversion[]="version""0"".""8"".""0"; 最佳答案 这称为字符串连接——当您在源代码中将两个(或更多)带引号的字符串彼此相邻放置且它们之间没有任何内容时,编译器会将它们放在一起成为一个字符串。这最常用于长字符串——任何超过一行的字符串:charwhatever[]="thisisthefirstlineofthestring\n""thisisthesecondlineof